#include <cstdlib>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "EnrolladorLigero.h"
#include "Enrollador.h"
#include <pthread.h>

typedef struct{
	float grosor;//pulgadas
	unsigned short largo;//metros
	float ancho;//pulgadas
	char usos[50];

} PlanchonSAE1005;//Bajo

typedef struct{
	float grosor;//pulgadas
	unsigned short largo;//metros
	float ancho;//pulgadas
	float precioTon;//precio dolar/tonelada
} PlanchonSAE1015;//Medio

typedef struct{
	float grosor;//pulgadas
	unsigned short largo;//metros
	float ancho;//pulgadas
	double dureza;
} PlanchonSAE1045;//Alto carbono


int main(int argc, char *argv[]) {
	//Rollo_t* rollo = (Rollo_t*)malloc(sizeof(Rollo_t));
	Mandril_t *mandrilDeMiEmpresa = new Mandril_t();
	char gradoAcero[20];
	int grosor=0;
	unsigned short largo=0;
	float ancho=0;
	char option='0';
	void * temp ;
	mandrilDeMiEmpresa->ancho = 60;
	mandrilDeMiEmpresa->diametro = 30;
	mandrilDeMiEmpresa->grosor = 6;
	mandrilDeMiEmpresa->peso=200;
	mandrilDeMiEmpresa->velocidadLinea=10;

	    while (option != '2')
	    {
	    	  system("cls");
	          printf("\t\tMENU\n\n");
	          printf("\t\t1.- Enrollar\n\n");
	          printf("\t\t2.- Salir\n\n");
	          printf("Elija una opcion: ");
	          flushall();
	          scanf("%c",&option);

	          switch(option)
	          {
	                case '1':	std::cout<<"Grado de Acero"<<std::endl;

	            				flushall();
	            				scanf("%s",gradoAcero);
	            				//strcpy(rollo->gradoAcero,gradoAcero);
	            				std::cout<<"Introduzca el grosor del planchon"<<std::endl;
	            				std::cin>>grosor;
	            				std::cout<<"Introduzca el largo del planchon"<<std::endl;
	            				std::cin>>largo;
	            				std::cout<<"Introduzca el ancho del planchon"<<std::endl;
	            				std::cin>>ancho;

	            				if(strcmp(gradoAcero, "SAE 1005")||
	            						strcmp(gradoAcero, "SAE 1006")||
	            						strcmp(gradoAcero, "SAE 1008")||
	            						strcmp(gradoAcero, "SAE 1010")||
	            						strcmp(gradoAcero, "SAE 1012"))
	            				{
	            					temp = new EnrolladorLigero<PlanchonSAE1005>("AwesomeWork","1005",mandrilDeMiEmpresa);
	            					PlanchonSAE1005 *myPlanchon = new PlanchonSAE1005();
	            					myPlanchon->ancho = ancho;
	            					myPlanchon->grosor = grosor;
	            					myPlanchon->largo = largo;
	            					strcpy(myPlanchon->usos,"Fabricacion de Perfiles y tuberia soldada");

	            					((EnrolladorLigero<PlanchonSAE1005>*)temp)->Iniciar(myPlanchon);
	            				}
	            				else if(strcmp(gradoAcero, "SAE 1015")||
	            						strcmp(gradoAcero, "SAE 1018")||
	            						strcmp(gradoAcero, "SAE 1020")||
	            						strcmp(gradoAcero, "SAE 1021")||
	            						strcmp(gradoAcero, "SAE 1025")||
	            						strcmp(gradoAcero, "SAE 1030")||
	            						strcmp(gradoAcero, "SAE 1035")||
	            						strcmp(gradoAcero, "SAE 1040"))
	            				{
	            					temp = new EnrolladorLigero<PlanchonSAE1015>("AwesomeWork","1015",mandrilDeMiEmpresa);
	            					PlanchonSAE1015 *myPlanchon = new PlanchonSAE1015();
	            					myPlanchon->ancho = ancho;
	            					myPlanchon->grosor = grosor;
	            					myPlanchon->largo = largo;
	            					myPlanchon->precioTon = 230;
	            					((EnrolladorLigero<PlanchonSAE1015>*)temp)->Iniciar(myPlanchon);
	            				}
	            				else if(strcmp(gradoAcero, "SAE 1045")||
	            						strcmp(gradoAcero, "SAE 1050")||
	            						strcmp(gradoAcero, "SAE 1055")||
	            						strcmp(gradoAcero, "SAE 1060")||
	            						strcmp(gradoAcero, "SAE 1052")){
	            					temp = new EnrolladorLigero<PlanchonSAE1045>("AwesomeWork","1045",mandrilDeMiEmpresa);
	            					PlanchonSAE1045 *myPlanchon = new PlanchonSAE1045();
	            					myPlanchon->ancho = ancho;
	            					myPlanchon->grosor = grosor;
	            					myPlanchon->largo = largo;
	            					myPlanchon->dureza = 1045;
	            					((EnrolladorLigero<PlanchonSAE1045>*)temp)->Iniciar(myPlanchon);
	            				}

	                            break;
	                case '2':   return EXIT_SUCCESS;
	                            break;
	                default:  printf("\n\nIntroduzca una opcion valida\n");
	          }
	    }
	return EXIT_SUCCESS;
}




